package com.example.dasilianxi.views;

import android.annotation.SuppressLint;
import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;

import androidx.annotation.Nullable;

public class MultiTouchView extends androidx.appcompat.widget.AppCompatTextView {
   public static final String TAG = "MultiView";
   private float x1, x2, y1, y2;
   public MultiTouchView(Context context) {
      super(context);
   }

   public MultiTouchView(Context context, @Nullable AttributeSet attrs) {
      super(context, attrs);
   }

   @SuppressLint("ClickableViewAccessibility")
   @Override
   public boolean onTouchEvent(MotionEvent event) {
      //覆盖（重写）自 View 类的方法，用于处理触摸事件。
      // 当用户触摸屏幕时，系统会调用这个方法，并传递一个 MotionEvent 对象，
      // 该对象包含了触摸事件的详细信息。
      int index = event.getActionIndex();//获取当前触摸事件中手指的索引。
      // 在多点触控场景中，可能有多个手指同时触摸屏幕，
      // getActionIndex() 方法返回当前动作对应的手指索引。

      switch (event.getActionMasked()) {//获取当前事件的主要动作。
         case MotionEvent.ACTION_DOWN:
            Log.e(TAG,"第1个手指按下");

            break;
         case MotionEvent.ACTION_UP:

            Log.e(TAG,"最后1个手指抬起");
            break;
         case MotionEvent.ACTION_MOVE://当手指在屏幕上移动时触发。
            // 如果有两个手指在屏幕上（event.getPointerCount() == 2），
            // 则获取这两个手指的当前位置，并记录日志。
            if (event.getPointerCount() == 2) {
               x2 = event.getX(1);
               y2 = event.getY(1);

               x1 = event.getX(0);
               y1 = event.getY(0);
               Log.d(TAG, "======pointer=====move" + "(" + x1 + "," + y1 + "),(" + x2 + "," + y2+")") ;
            }
            break;
         case MotionEvent.ACTION_POINTER_DOWN:
            Log.e(TAG,"第"+(index+1)+"个手指按下");
            break;
         case MotionEvent.ACTION_POINTER_UP:
            Log.e(TAG,"第"+(index+1)+"个手指抬起");
            break;
      }
      return super.onTouchEvent(event);
   }
}
